[flake8]
min_python_version = 3.8.0
max-line-length = 120
ignore =
  # E402
  # Line too long
  E501,
  # Line break occurred before a binary operator
  W503,
  # Function is too complex
  C901,
  # https://www.flake8rules.com/rules/E721.html
  E721
per-file-ignores =
  mindsdb/__main__.py: E402
  mindsdb/api/mysql/mysql_proxy/libs/constants/mysql.py: E241
exclude =
  __init__.py,
  build/*
  mindsdb/microservices_grpc/*
  # TODO: clean up this code
  mindsdb/integrations/handlers/druid_handler/druid_handler.py
  mindsdb/integrations/handlers/dynamodb_handler/dynamodb_handler.py
  mindsdb/integrations/handlers/elasticsearch_handler/elasticsearch_handler.py
  mindsdb/integrations/handlers/firebird_handler
  mindsdb/integrations/handlers/firebird_handler/firebird_handler.py
  mindsdb/integrations/handlers/hive_handler/tests/test_hive_handler.py
  mindsdb/integrations/handlers/informix_handler/informix_handler.py
  mindsdb/integrations/handlers/informix_handler/tests/test_informix_handler.py
  mindsdb/integrations/handlers/lightwood_handler/*
  mindsdb/integrations/handlers/ludwig_handler/test_ludwig.py
  mindsdb/integrations/handlers/mariadb_handler/tests/test_mariadb_handler.py
  mindsdb/integrations/handlers/matrixone_handler/*
  mindsdb/integrations/handlers/mlflow_handler/*
  mindsdb/integrations/handlers/monetdb_handler/*
  mindsdb/integrations/handlers/mongodb_handler/*
  mindsdb/integrations/handlers/mssql_handler/*
  mindsdb/integrations/handlers/mysql_handler/tests/test_mysql_handler.py
  mindsdb/integrations/handlers/oracle_handler/oracle_handler.py
  mindsdb/integrations/handlers/pinot_handler/pinot_handler.py
  mindsdb/integrations/handlers/postgres_handler/tests/test_postgres_handler.py
  mindsdb/integrations/handlers/questdb_handler/*
  mindsdb/integrations/handlers/redshift_handler/*
  mindsdb/integrations/handlers/s3_handler/s3_handler.py
  mindsdb/integrations/handlers/singlestore_handler/*
  mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py
  mindsdb/integrations/handlers/sqlite_handler/sqlite_handler.py
  mindsdb/integrations/handlers/supabase_handler/tests/test_supabase_handler.py
  mindsdb/integrations/handlers/tidb_handler/*
  mindsdb/integrations/handlers/timescaledb_handler/*
  mindsdb/integrations/handlers/trino_handler/trino_handler.py
  mindsdb/integrations/handlers/vertica_handler/*
  mindsdb/integrations/handlers/view_handler/view_handler.py
  mindsdb/integrations/handlers/yugabyte_handler/*
  mindsdb/integrations/handlers/opengauss_handler/*
  mindsdb/integrations/handlers/dockerhub_handler/*
  mindsdb/integrations/libs/response.py
  mindsdb/integrations/utilities/utils.py
  mindsdb/migrations/env.py
  tests/handler_tests/test_storage_handler.py
  tests/integration_tests/flows/test_mysql_bin_api.py
  tests/prediction_latency_test/*
  tests/unit/test_cache.py
  tests/unit/test_mongodb_handler.py
  tests/unit/test_mongodb_server.py
  tests/unit/ml_handlers/test_huggingface.py
  tests/unit/ml_handlers/test_mlflow.py
  tests/unit/ml_handlers/test_huggingface.py
  tests/unit/ml_handlers/test_ludwig.py
  tests/unit/ml_handlers/test_lightwood.py
  tests/unit/test_predictor_params.py
  tests/unit/test_merlion_handler.py
  mindsdb/integrations/handlers/plaid_handler/*
  mindsdb/integrations/handlers/cohere_handler/*
  mindsdb/integrations/handlers/google_calendar_handler/*
  mindsdb/integrations/handlers/orioledb_handler/*
  mindsdb/integrations/handlers/youtube_handler/*
  mindsdb/integrations/handlers/sentence_transformer_handler/*
  mindsdb/integrations/handlers/influxdb_handler/*
  mindsdb/integrations/handlers/nuo_jdbc_handler/*
  mindsdb/integrations/handlers/sendinblue_handler/*
  mindsdb/integrations/handlers/merlion_handler/*
  mindsdb/integrations/handlers/confluence_handler/*
  mindsdb/integrations/handlers/frappe_handler/*
  mindsdb/integrations/handlers/cloud_sql_handler/*
  mindsdb/integrations/handlers/flaml_handler/*
  mindsdb/integrations/handlers/huggingface_handler/*
  mindsdb/integrations/handlers/email_handler/*
  mindsdb/integrations/handlers/reddit_handler/*
  mindsdb/integrations/handlers/timegpt_handler/*
  mindsdb/integrations/handlers/slack_handler/*
  mindsdb/integrations/handlers/quickbooks_handler/*
  mindsdb/integrations/handlers/strava_handler/*
  mindsdb/integrations/handlers/strava_handler/*
  mindsdb/integrations/handlers/web_handler/*
  mindsdb/integrations/handlers/strava_handler/*
  mindsdb/integrations/handlers/github_handler/*
  mindsdb/integrations/handlers/vitess_handler/*
  mindsdb/integrations/handlers/web_handler/*
  mindsdb/integrations/handlers/impala_handler/*
  mindsdb/integrations/handlers/tdengine_handler/*
  mindsdb/integrations/handlers/huggingface_api_handler/*
  mindsdb/integrations/handlers/ignite_handler/*
  mindsdb/integrations/handlers/hive_handler/*
  mindsdb/integrations/handlers/teradata_handler/*
  mindsdb/integrations/handlers/google_books_handler/*
  mindsdb/integrations/handlers/edgelessdb_handler/*
  mindsdb/integrations/handlers/google_fit_handler/*
  mindsdb/integrations/handlers/altibase_handler/*
  mindsdb/integrations/handlers/ms_teams_handler/*
  mindsdb/integrations/handlers/discord_handler/*
  mindsdb/integrations/handlers/hana_handler/*
  mindsdb/integrations/handlers/sheets_handler/*
  mindsdb/integrations/handlers/autosklearn_handler/*
  mindsdb/integrations/handlers/twitter_handler/*
  mindsdb/integrations/handlers/statsforecast_handler/*
  mindsdb/integrations/handlers/jira_handler/*
  mindsdb/integrations/handlers/stripe_handler/*
  mindsdb/integrations/handlers/writer_handler/*
  mindsdb/integrations/handlers/llama_index_handler/*
  mindsdb/integrations/handlers/rocket_chat_handler/*
  mindsdb/integrations/handlers/utilities/*
  mindsdb/integrations/handlers/sqlany_handler/*
  mindsdb/integrations/handlers/google_content_shopping_handler/*
  mindsdb/integrations/handlers/oceanbase_handler/*
  mindsdb/integrations/handlers/hackernews_handler/*
  mindsdb/integrations/handlers/langchain_handler/*
  mindsdb/integrations/handlers/sqreamdb_handler/*
  mindsdb/integrations/handlers/gitlab_handler/*
  mindsdb/integrations/handlers/maxdb_handler/*
  mindsdb/integrations/handlers/paypal_handler/*
  mindsdb/integrations/handlers/eventstoredb_handler/*
  mindsdb/integrations/handlers/rockset_handler/*
  mindsdb/integrations/handlers/solr_handler/*
  mindsdb/integrations/handlers/shopify_handler/*
  mindsdb/integrations/handlers/anthropic_handler/*
  mindsdb/integrations/handlers/tpot_handler/*
  mindsdb/integrations/handlers/derby_handler/*
  mindsdb/integrations/handlers/scylla_handler/*
  mindsdb/integrations/handlers/clickhouse_handler/*
  mindsdb/integrations/handlers/phoenix_handler/*
  mindsdb/integrations/handlers/replicate_handler/*
  mindsdb/integrations/handlers/pgvector_handler/*
  mindsdb/integrations/handlers/materialize_handler/*
  mindsdb/integrations/handlers/planetscale_handler/*
  mindsdb/integrations/handlers/starrocks_handler/*
  mindsdb/integrations/handlers/ingres_handler/*
  mindsdb/integrations/handlers/palm_handler/*
  mindsdb/integrations/handlers/binance_handler/*
  mindsdb/integrations/handlers/openai_handler/*
  mindsdb/integrations/handlers/mediawiki_handler/*
  mindsdb/integrations/handlers/mendeley_handler/*
  mindsdb/integrations/handlers/databend_handler/*
  mindsdb/integrations/handlers/cloud_spanner_handler/*
  mindsdb/integrations/handlers/gmail_handler/*
  mindsdb/integrations/handlers/hsqldb_handler/*
  mindsdb/integrations/handlers/newsapi_handler/*
  mindsdb/integrations/handlers/monkeylearn_handler/*
  mindsdb/integrations/handlers/mysql_handler/*
  mindsdb/integrations/handlers/google_search_handler/*
  mindsdb/integrations/handlers/ollama_handler/*
  mindsdb/integrations/handlers/aurora_handler/*
  mindsdb/integrations/handlers/surrealdb_handler/*
  mindsdb/integrations/handlers/neuralforecast_handler/*
  mindsdb/integrations/handlers/rag_handler/*
max-complexity = 18
